#include "globalData.h"

#define PAIR1_DEEP 7
#define PAIR1_SHALLOW 3
#define PAIR2_DEEP 4
#define PAIR2_SHALLOW 2

#define CUT_DEPTH1 4
#define CUT_DEPTH2 2

/* return bounds on the shallow search */
int GetBoundLow(int alpha, int stage, int depth);

int GetBoundHigh(int beta, int stage, int depth);

/* initialise the constants for MPC */
void InitialiseMPC();

/* write the threshold back into file */
void WriteMPC(double gradient[][2], double bias[][2], double deviation[][2]);

/* Perform MPC search and write data into file */
void PerformSearch(gameState gs[], BitBoard blocked, BoardState player[]);

/* Fit the stored MPC data to linear regressions and store parameters to file */
void FitMPC();

/* Perform end cut on the selected node */
bool performEndCut(int alpha, int beta, int eval, int depth, int stage);
